<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: opencv2/aruco/charuco.hpp File Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../dir_276e96bc08393951f134aff42c5716f9.html">opencv2</a></li><li class="navelem"><a class="el" href="../../dir_f2eed5347b07a1353c90f9bc10feaf3b.html">aruco</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">charuco.hpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="../../d0/d9c/core_2include_2opencv2_2core_8hpp.html">opencv2/core.hpp</a>&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;<a class="el" href="../../d9/d53/aruco_8hpp.html">opencv2/aruco.hpp</a>&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d3c/classcv_1_1aruco_1_1CharucoBoard.html">cv::aruco::CharucoBoard</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">ChArUco board Specific class for ChArUco boards. A ChArUco board is a planar board where the markers are placed inside the white squares of a chessboard. The benefits of ChArUco boards is that they provide both, ArUco markers versatility and chessboard corner precision, which is important for calibration and pose estimation. This class also allows the easy creation and drawing of ChArUco boards.  <a href="../../d0/d3c/classcv_1_1aruco_1_1CharucoBoard.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d2/d75/namespacecv"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></td></tr>
<tr class="memdesc:d2/d75/namespacecv"><td class="mdescLeft">&#160;</td><td class="mdescRight">"black box" representation of the file storage associated with a file on disk. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d4/d17/namespacecv_1_1aruco"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d17/namespacecv_1_1aruco.html">cv::aruco</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga54cf81c2e39119a84101258338aa7383"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#ga54cf81c2e39119a84101258338aa7383">cv::aruco::calibrateCameraCharuco</a> (InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds, const Ptr&lt; CharucoBoard &gt; &amp;board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, OutputArray stdDeviationsIntrinsics, OutputArray stdDeviationsExtrinsics, OutputArray perViewErrors, int flags=0, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))</td></tr>
<tr class="memdesc:ga54cf81c2e39119a84101258338aa7383"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calibrate a camera using Charuco corners.  <a href="../../d9/d6a/group__aruco.html#ga54cf81c2e39119a84101258338aa7383">More...</a><br /></td></tr>
<tr class="separator:ga54cf81c2e39119a84101258338aa7383"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabefb98f7f2c74c98574fd50711c5349d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#gabefb98f7f2c74c98574fd50711c5349d">cv::aruco::calibrateCameraCharuco</a> (InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds, const Ptr&lt; CharucoBoard &gt; &amp;board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs=noArray(), OutputArrayOfArrays tvecs=noArray(), int flags=0, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))</td></tr>
<tr class="memdesc:gabefb98f7f2c74c98574fd50711c5349d"><td class="mdescLeft">&#160;</td><td class="mdescRight">It's the same function as <a class="el" href="../../d9/d6a/group__aruco.html#ga54cf81c2e39119a84101258338aa7383" title="Calibrate a camera using Charuco corners. ">calibrateCameraCharuco</a> but without calibration error estimation.  <a href="../../d9/d6a/group__aruco.html#gabefb98f7f2c74c98574fd50711c5349d">More...</a><br /></td></tr>
<tr class="separator:gabefb98f7f2c74c98574fd50711c5349d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaade474aa951d02470c34ddbb91d851ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#gaade474aa951d02470c34ddbb91d851ea">cv::aruco::detectCharucoDiamond</a> (InputArray image, InputArrayOfArrays markerCorners, InputArray markerIds, float squareMarkerLengthRate, OutputArrayOfArrays diamondCorners, OutputArray diamondIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray())</td></tr>
<tr class="memdesc:gaade474aa951d02470c34ddbb91d851ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detect ChArUco Diamond markers.  <a href="../../d9/d6a/group__aruco.html#gaade474aa951d02470c34ddbb91d851ea">More...</a><br /></td></tr>
<tr class="separator:gaade474aa951d02470c34ddbb91d851ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf71fb897d5f03f7424c0c84715aa6228"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#gaf71fb897d5f03f7424c0c84715aa6228">cv::aruco::drawCharucoDiamond</a> (const Ptr&lt; Dictionary &gt; &amp;dictionary, Vec4i ids, int squareLength, int markerLength, OutputArray img, int marginSize=0, int borderBits=1)</td></tr>
<tr class="memdesc:gaf71fb897d5f03f7424c0c84715aa6228"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw a ChArUco Diamond marker.  <a href="../../d9/d6a/group__aruco.html#gaf71fb897d5f03f7424c0c84715aa6228">More...</a><br /></td></tr>
<tr class="separator:gaf71fb897d5f03f7424c0c84715aa6228"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7225eee644190f791e1583c499b7ab10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#ga7225eee644190f791e1583c499b7ab10">cv::aruco::drawDetectedCornersCharuco</a> (InputOutputArray image, InputArray charucoCorners, InputArray charucoIds=noArray(), Scalar cornerColor=Scalar(255, 0, 0))</td></tr>
<tr class="memdesc:ga7225eee644190f791e1583c499b7ab10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a set of Charuco corners.  <a href="../../d9/d6a/group__aruco.html#ga7225eee644190f791e1583c499b7ab10">More...</a><br /></td></tr>
<tr class="separator:ga7225eee644190f791e1583c499b7ab10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0dbf27203267fb8e9f282554cf0d3433"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#ga0dbf27203267fb8e9f282554cf0d3433">cv::aruco::drawDetectedDiamonds</a> (InputOutputArray image, InputArrayOfArrays diamondCorners, InputArray diamondIds=noArray(), Scalar borderColor=Scalar(0, 0, 255))</td></tr>
<tr class="memdesc:ga0dbf27203267fb8e9f282554cf0d3433"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw a set of detected ChArUco Diamond markers.  <a href="../../d9/d6a/group__aruco.html#ga0dbf27203267fb8e9f282554cf0d3433">More...</a><br /></td></tr>
<tr class="separator:ga0dbf27203267fb8e9f282554cf0d3433"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21b51b9e8c6422a4bac27e48fa0a150b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#ga21b51b9e8c6422a4bac27e48fa0a150b">cv::aruco::estimatePoseCharucoBoard</a> (InputArray charucoCorners, InputArray charucoIds, const Ptr&lt; CharucoBoard &gt; &amp;board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false)</td></tr>
<tr class="memdesc:ga21b51b9e8c6422a4bac27e48fa0a150b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pose estimation for a ChArUco board given some of their corners.  <a href="../../d9/d6a/group__aruco.html#ga21b51b9e8c6422a4bac27e48fa0a150b">More...</a><br /></td></tr>
<tr class="separator:ga21b51b9e8c6422a4bac27e48fa0a150b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcc5dc30c9ad33dcf839e84e8638dcd1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#gadcc5dc30c9ad33dcf839e84e8638dcd1">cv::aruco::interpolateCornersCharuco</a> (InputArrayOfArrays markerCorners, InputArray markerIds, InputArray image, const Ptr&lt; CharucoBoard &gt; &amp;board, OutputArray charucoCorners, OutputArray charucoIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), int minMarkers=2)</td></tr>
<tr class="memdesc:gadcc5dc30c9ad33dcf839e84e8638dcd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolate position of ChArUco board corners.  <a href="../../d9/d6a/group__aruco.html#gadcc5dc30c9ad33dcf839e84e8638dcd1">More...</a><br /></td></tr>
<tr class="separator:gadcc5dc30c9ad33dcf839e84e8638dcd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90a455587ebb94cc0e0c7be1a929acb1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d6a/group__aruco.html#ga90a455587ebb94cc0e0c7be1a929acb1">cv::aruco::testCharucoCornersCollinear</a> (const Ptr&lt; CharucoBoard &gt; &amp;_board, InputArray _charucoIds)</td></tr>
<tr class="memdesc:ga90a455587ebb94cc0e0c7be1a929acb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">test whether the ChArUco markers are collinear  <a href="../../d9/d6a/group__aruco.html#ga90a455587ebb94cc0e0c7be1a929acb1">More...</a><br /></td></tr>
<tr class="separator:ga90a455587ebb94cc0e0c7be1a929acb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:33 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
